package com.space.school.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;


import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class SpaceJDBCUtils { public static DataSource getDataSource;
    //    1.定义成员变量
//    DataSource sql里的一个接口
//    DataSource 数据来源
//    Source 来源
    private static DataSource ds;
//    静态代码块
//    修饰里面的内容会比构造函数更早实现的内容
//    2.预先加载配置文件

//    get方法 得到ds值
    public static DataSource getDataSource() {
        return ds;
    }

    static {
        Properties properties=new Properties();
        try {
//            使用Properties对象来加载配置文件druid.properties
            properties.load(SpaceJDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//        初始化DataSource
            ds= DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
//            获取连接方式
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
//    关闭修改流
    public static void close(Statement statement,Connection connection){
        close(connection,statement,null);
    }
//    关闭查询流
    public static void close( Connection connection,Statement statement, ResultSet resultSet){
        if (connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
